home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / gfx / misc / dctvdev3.lzh / dctv.doc next >
Text File  |  1992-09-23  |  22KB  |  622 lines

  1. dctv.library - September 23, 1992
  2.  
  3. Copyright (C) 1991-1992, Digital Creations, Inc.
  4.  
  5.  
  6. TABLE OF CONTENTS
  7.  
  8. dctv.library/AllocDCTVCvt
  9. dctv.library/AllocDCTVCvtTagList
  10. dctv.library/AllocDCTVCvtTags
  11. dctv.library/CvtDCTVLine
  12. dctv.library/DCTVCvtLine
  13. dctv.library/DCTVFormat
  14. dctv.library/FormatDCTV
  15. dctv.library/FreeDCTVCvt
  16. dctv.library/InitDCTVCvt
  17. dctv.library/ReadDCTVPixel
  18. dctv.library/SetDCTVColorTable
  19. dctv.library/TestDCTVSignature
  20. dctv.library/AllocDCTVCvt                           dctv.library/AllocDCTVCvt
  21.  
  22. NAME
  23.     AllocDCTVCvt -- Old form of AllocDCTVCvtTagList().
  24.  
  25. SYNOPSIS
  26.     struct DCTVCvtHandle *AllocDCTVCvt (struct BitMap *BitMap,
  27.                                                       a0
  28.  
  29.                         ULONG Width, ULONG Height, ULONG Flags)
  30.                               d0           d1            d2
  31.  
  32. FUNCTION
  33.     This is the V1 compatible form of AllocDCTVCvtTagList().  It offers
  34.     only a subset of the features of AllocDCTVCvtTagList():
  35.         . RGB->DCTV conversion only.
  36.         . No extended error code.
  37.  
  38.     This function is equivalent to:
  39.  
  40.         AllocDCTVCvtTags ( BitMap,
  41.                            DCTVCVTA_Width,  Width,
  42.                            DCTVCVTA_Height, Height,
  43.                            DCTVCVTA_Flags,  Flags,
  44.                            TAG_END );
  45.  
  46.     This function is considered obsolete, but is still present in the
  47.     library for backwards compatibility.
  48.  
  49. INPUTS
  50.     BitMap - BitMap arg for AllocDCTVCvtTagList().
  51.  
  52.     Width,
  53.     Height,
  54.     Flags - Values for DCTVCVTA_Width, DCTVCVTA_Height, and DCTVCVTA_Flags
  55.         respectively.
  56.  
  57. RESULTS
  58.     Pointer to initialized DCTVCvtHandle for use with other conversion
  59.     functions.  NULL on failure.
  60.  
  61. SEE ALSO
  62.     AllocDCTVCvtTagList(), FreeDCTVCvt(), libraries/dctv.h
  63. dctv.library/AllocDCTVCvtTagList             dctv.library/AllocDCTVCvtTagList
  64.  
  65. NAME
  66.     AllocDCTVCvtTagList -- Allocate a conversion environment. (V3)
  67.  
  68. SYNOPSIS
  69.     struct DCTVCvtHandle *AllocDCTVCvtTagList
  70.             (struct BitMap *BitMap, struct TagItem *TagList)
  71.                       a0                     a1
  72.  
  73. FUNCTION
  74.     Allocates and initializes a DCTV conversion environment.  The following
  75.     types of conversions are supported:
  76.         . 24-bit RGB to DCTV BitMap
  77.         . DCTV BitMap to 24-bit RGB
  78.  
  79.     In both cases the 24-bit RGB data is expected to be in 70ns (HIRES)
  80.     pixels, interlace or non-interlace.  The RGB and DCTV pixels correspond
  81.     1:1.  No image scaling is performed.
  82.  
  83.     The supplied taglist desribes the conversion type, image dimensions,
  84.     and a variety of other parameters.
  85.  
  86.     There are two methods of handling DCTV BitMaps:  full-screen (default)
  87.     and 1-line.  A full-screen BitMap contains the entire DCTV display
  88.     image (either as destination or source depending on conversion type).
  89.     Successive calls to CvtDCTVLine() process successive lines in the
  90.     BitMap.
  91.  
  92.     A 1-line BitMap (DCTVCVTF_1LineBM set) contains only 1 line of the
  93.     DCTV BitMap instead of the full image.  This sort of BitMap is not
  94.     displayable, but is useful as a file buffer.  It also requires less
  95.     memory than a full-screen BitMap.  In this case, each call to
  96.     CvtDCTVLine() uses the same line in the BitMap.
  97.  
  98.     RGB data is handled in the form of a 24-bit RGB line buffer in the
  99.     form of 3 UBYTE arrays in the conversion environment: one for each
  100.     component (Red, Green, and Blue).  The RGB data is in chunk pixel
  101.     format instead of a BitMap.  These arrays are used to buffer 1 line
  102.     of RGB data and must be read or written to (depending on conversion
  103.     type) between calls to CvtDCTVLine().
  104.  
  105.     Normally AllocDCTVCvtTagList() allocates the 24-bit RGB line buffer.
  106.     When DCTVCVTF_CustomRGBBuf is set, the client is allowed to supply
  107.     the line buffer instead.  This is useful if your RGB buffer is
  108.     taller than 1 line since this mode allows changing the RGB buffer
  109.     pointers between calls to CvtDCTVLine().  This also eliminates copying
  110.     to and from the conversion 24-bit line buffer.
  111.  
  112.     Note that the buffer pointers in the DCTVCvtHandle may only be changed
  113.     if DCTVCVTF_CustomRGBBuf is set.  These pointers are read-only when
  114.     this bit isn't set.
  115.  
  116.     A special case exists in which DCTVCVTF_CustomRGBBuf may be specified
  117.     and the buffers left NULL.  This is legal only when using
  118.     DCTVCVTT_DCTVtoRGB conversion mode and only calling ReadDCTVPixel()
  119.     (not CvtDCTVLine()) because ReadDCTVPixel() does not access the RGB
  120.     line buffers.
  121.  
  122.     The actual conversion process consists of calling CvtDCTVLine()
  123.     for each line to be converted.
  124.  
  125.     The line number values SrcLineNum, DstLineNum and NDelayLines are used
  126.     to determine which line is to be input and output by the next call to
  127.     CvtDCTVLine().  NDelayLines indicates how many lines of source data
  128.     are required to be buffered in order to generate the first line of
  129.     output data.  The actual value of NDelayLines depends on the
  130.     conversion type and flags and may change from one library version to
  131.     another.
  132.  
  133.     The following relationship is always true:
  134.         SrcLineNum - DstLineNum == NDelayLines.
  135.  
  136.     Usually CvtDCTVLine() must be called a total of Height + NDelayLines
  137.     times to completely generate the output image.
  138.  
  139.     A conversion environment can only be used for the type of conversion
  140.     specified in DCTVCVTA_Type.  A single conversion environment can be
  141.     used to process multiple frames sequentially by calling InitDCTVCvt()
  142.     between frames.  The only restriction is that each frame must use the
  143.     same BitMap and be the same dimensions.
  144.  
  145.     Call FreeDCTVCvt() to dispose of conversion environment.
  146.  
  147. INPUTS
  148.     BitMap - Pointer to an initialized BitMap structure with the following
  149.         dimension limits:
  150.  
  151.             Width >= 256
  152.             Height >= 2 for non-lace, 3 for lace
  153.             Depth >= 3
  154.  
  155.         The Planes[] data need not be in chip ram for conversion (but
  156.         obviously do if you expect to display the BitMap).
  157.  
  158.         Both interleaved and non-interleaved bitmaps are supported.
  159.  
  160.         For full-screen mode, the BitMap must be large enough to hold the
  161.         entire conversion as specified by DCTVCVTA_Width and
  162.         DCTVCVTA_Height.  For 1-line mode, the BitMap needs to have at
  163.         least one line of data wide enough to hold an entire line as
  164.         specified by DCTVCVTA_Width.
  165.  
  166.         The supplied BitMap structure and Planes[] data must remain valid
  167.         until FreeDCTVCvt() is called.
  168.  
  169.     TagList - Pointer to TagItem array with Tags described below.
  170.  
  171. TAGS
  172.     DCTVCVTA_Type       (UWORD)
  173.         DCTVCVTT_RGBtoDCTV - Convert 24-bit RGB chunky pixels to DCTV a
  174.             display BitMap.  This is the default conversion type.
  175.  
  176.         DCTVCVTT_DCTVtoRGB - Convert a DCTV display BitMap to 24-bit
  177.             RGB chunky pixels.
  178.  
  179.     DCTVCVTA_Width      (WORD)
  180.         Pixel width of image to convert in 70ns (HIRES) pixels.  Must be
  181.         multiple of 16 in the range of 256 .. BitMap width.  The practical
  182.         maximum width is 736 (the maximum display width).  Non-multiples of
  183.         16 are truncated.
  184.  
  185.         The default value is derived from the BitMap.
  186.  
  187.         It's safest to always include this tag when using a 1-line BitMap
  188.         since there is some ambiguity as to what BitMap->BytesPerRow
  189.         actually means for a 1-line BitMap.
  190.  
  191.     DCTVCVTA_Height     (WORD)
  192.         Pixel height of image to convert.
  193.  
  194.         For full-screen mode, must be in the range of 2 for non-lace (3
  195.         for lace) .. BitMap height.  For 1-line mode, must be at least 2
  196.         for non-lace, 3 for lace.
  197.  
  198.         The default value is derived from the BitMap.
  199.  
  200.         It's safest to always include this tag when using a 1-line BitMap
  201.         since there is some ambiguity as to what BitMap->Rows actually
  202.         means for a 1-line BitMap.
  203.  
  204.     DCTVCVTA_Flags      (UWORD)
  205.         DCTVCVTF_Lace - Interlaced DCTV display BitMap.
  206.  
  207.         DCTVCVTF_Filter - Apply RGB filtering.  Only observed for
  208.             DCTVCTVT_RGBtoDCTV.
  209.  
  210.         DCTVCVTF_1LineBM - Treat BitMap as 1-line instead of full-screen.
  211.  
  212.         DCTVCVTF_CustomRGBBuf (V3) - Allow client to supply a custom RGB
  213.             line buffer.  Normally this function allocates the RGB line
  214.             buffer.
  215.  
  216.         Unknown flags are ignored.
  217.  
  218.     DCTVCVTA_ColorTable (UWORD *)
  219.         Initial palette associated with BitMap for DCTVCVTT_DCTVtoRGB
  220.         conversion.  Must contain 1 << BitMap->Depth entries.  This array
  221.         must remain valid until it is replaced with SetDCTVColorTAble()
  222.         or the conversion environment is freed.
  223.  
  224.         Mid-BitMap palette changes, if any, can be set with
  225.         SetDCTVColorTable().
  226.  
  227.         This tag is required for DCTVCVTT_DCTVtoRGB in order to be able to
  228.         decode the bits in the BitMap.  Ignored for DCTVCVTT_RGBtoDCTV.
  229.  
  230.     DCTVCVTA_ErrorCode  (ULONG *)
  231.         Pointer to a ULONG where an extended error code is placed if
  232.         AllocDCTVCvtTagList() fails.  The buffer pointed to by this
  233.         tag is modified only on an error.
  234.  
  235.         Errors codes:
  236.  
  237.         DCTVCVTERR_NoMem - Not enough memory.
  238.  
  239.         DCTVCVTERR_BadBitMap - Supplied BitMap is not valid.  Could be
  240.             invalid dimensions or depth.
  241.  
  242.         DCTVCVTERR_UnknownType - Unknown conversion type passed to
  243.             DCTVCVTA_Type.
  244.  
  245.         DCTVCVTERR_BadParams - Invalid parameters provided for
  246.             conversion.
  247.  
  248. RESULTS
  249.     Pointer to initialized DCTVCvtHandle for use with other conversion
  250.     functions.  NULL on failure.  Can fail if out of memory or supplied
  251.     parameters are not legal.
  252.  
  253.     On success the DCTVCvtHandle structure is initialized as follows:
  254.     (see libraries/dctv.h for a more complete explanation of each field)
  255.  
  256.         Red,
  257.         Green,
  258.         Blue - If DCTVCVTF_CustomRGBBuf isn't set, these point to allocated
  259.             24-bit RGB line buffer, Width bytes wide.  The buffers are
  260.             initialized to zero.
  261.  
  262.             If DCTVCVTF_CustomRGBBuf is set, these are set to NULL and
  263.             the client is expected to set these pointers prior to calling
  264.             CvtDCTVLine().
  265.  
  266.         BitMap - BitMap pointer passed to AllocDCTVCvtTagList().
  267.  
  268.         Width,
  269.         Height - Values from DCTVCVTA_Width and DCTVCVTA_Height or derived
  270.             from BitMap.
  271.  
  272.         ImageBounds - Computed from Width, Height and Modes.
  273.  
  274.         ColorTable,
  275.         NColors - Palette information for BitMap Depth.  For
  276.             DCTVCVTT_RGBtoDCTV this is the palette supplied by dctv.library
  277.             for the output BitMap.  For DCTVCVTT_DCTVtoRGB, this is the
  278.             array supplied by DCTVCVTA_ColorTable.
  279.  
  280.         NDelayLines - Initialized depending on type and flags.
  281.  
  282.         SrcLineNum - Initialized to 0 (as set by InitDCTVCvt()).
  283.  
  284.         DstLineNum - Initialized to -NDelayLines (as set by InitDCTVCvt()).
  285.  
  286. NOTE
  287.     V1 AllocDCTVCvt() was documented as tolerating a BitMap with the
  288.     BitMap->Planes[] array not initialized.  This practice is not
  289.     recommended and will probably break in the future.
  290.  
  291. SEE ALSO
  292.     AllocDCTVCvtTags(), FreeDCTVCvt(), CvtDCTVLine(), libraries/dctv.h
  293. dctv.library/AllocDCTVCvtTags                   dctv.library/AllocDCTVCvtTags
  294.  
  295. NAME
  296.     AllocDCTVCvtTags -- Varargs version of AllocDCTVCvtTagList(). (V3)
  297.  
  298. SYNOPSIS
  299.     struct DCTVCvtHandle *AllocDCTVCvtTagList
  300.             (struct BitMap *BitMap, Tag tag1, ...)
  301.  
  302. FUNCTION
  303.     Varargs version of AllocCvtTagList().  See AllocDCTVCvtTagList() for
  304.     complete description.
  305.  
  306. INPUTS
  307.     BitMap - BitMap arg for AllocDCTVCvtTagList().
  308.     Tag1... - TagItem array on the stack to be passed to
  309.         AllocDCTVCvtTagList().
  310.  
  311. RESULTS
  312.     Pointer to initialized DCTVCvtHandle for use with other conversion
  313.     functions.  NULL on failure.
  314.  
  315. NOTE
  316.     16-bit integer users:  be careful to cast integer tag data to 32-bits.
  317.     For example:
  318.  
  319.     AllocDCTVCvtTags ( bm,
  320.                 DCTVCVTA_Type,   (ULONG)DCVTCVTT_RGBtoDCTV,
  321.                 DCTVCVTA_Width,  (ULONG)width,
  322.                 DCTVCVTA_Height, (ULONG)height,
  323.                 DCTVCVTA_Flags,  (ULONG)DCTVCVTF_Filter | DCTVCVTF_Lace,
  324.                 TAG_END );
  325.  
  326. SEE ALSO
  327.     AllocDCTVCvtTagList(), FreeDCTVCvt(), CvtDCTVLine(), libraries/dctv.h
  328. dctv.library/CvtDCTVLine                             dctv.library/CvtDCTVLine
  329.  
  330. NAME
  331.     CvtDCTVLine -- Convert a line.
  332.  
  333. SYNOPSIS
  334.     void CvtDCTVLine (struct DCTVCvtHandle *Handle)
  335.                                    a0
  336.  
  337. FUNCTION
  338.     Converts a line as described below.
  339.  
  340.     NOTE: All references to SrcLineNum and DstLineNum values below are
  341.     the values before calling CvtDCTVLine().
  342.  
  343.     DCTVCVTT_RGBtoDCTV - Converts the RGB data in the Handle's RGB line
  344.         buffers to DCTV.  Assumes that the buffers contain data for
  345.         SrcLineNum and will generate the BitMap line indexed by DstLineNum.
  346.  
  347.         The source RGB line buffer is only read when SrcLineNum is in the
  348.         vertical range of ImageBounds.  Otherwise it is ignored.  Pixels
  349.         outside the range of ImageBounds are ignored.
  350.  
  351.         Destination BitMap data is only emitted for values of DstLineNum
  352.         in the range of 0..Height-1.  The BitMap is not affected for
  353.         DstLineNum values outside this range.
  354.  
  355.         The contents of the RGB line buffer are not affected by this
  356.         function.
  357.  
  358.     DCTVCVTT_DCTVtoRGB - Converts the DCTV display BitMap line indexed by
  359.         SrcLineNum to the RGB line buffer.  The resulting RGB data is for
  360.         DstLineNum.
  361.  
  362.         Source BitMap data is only read for SrcLineNum values in the
  363.         vertical range of ImageBounds.
  364.  
  365.         Destination RGB data is only emitted for DstLineNum values in the
  366.         range of 0..Height-1.  Pixels outside the ImageBounds rectangle
  367.         are emitted as black.
  368.  
  369.         The BitMap is not affected by this function.
  370.  
  371.     SrcLineNum and DstLineNum are incremented after processing the line.
  372.  
  373.     CvtDCTVLine() should be called until DstLineNum >= Height in order
  374.     to convert the entire image (see example below) when NDelayLines
  375.     is non-zero.  Be careful to avoid overindexing your buffers.
  376.  
  377. INPUTS
  378.     Handle - DCTVCvtHandle returned by AllocDCTVCvtTagList().  Note to
  379.         DCTVCVTF_CustomRGBBuf users:  the RGB line buffer pointers must
  380.         point to a valid buffer by the time of this call (i.e. non-NULL)
  381.         for line number ranges that would access the RGB line buffer
  382.         (see above for when this happens).
  383.  
  384. RESULTS
  385.     Outputs BitMap or RGB data (depending on conversion type) for line
  386.     DstLineNum when DstLineNum is in the range of 0 <= DstLineNum < Height
  387.     prior to call.
  388.  
  389.     Increments SrcLineNum and DstLineNum.
  390.  
  391. EXAMPLE
  392.     while (cvt->DstLineNum < cvt->Height) {
  393.         renderline (cvt);           /* Render a line of the gradient to
  394.                                        DCTVCvtHandle RGB line buffer.
  395.                                        This function must be smart enough
  396.                                        to deal w/ SrcLineNum >= Height. */
  397.  
  398.         CvtDCTVLine (cvt);          /* Convert the line in the line buffer
  399.                                        to DCTV display data. Results in
  400.                                        rendering a line of the BitMap. */
  401.     }
  402.  
  403. SEE ALSO
  404.     AllocDCTVCvtTagList(), InitDCTVCvt(), libraries/dctv.h
  405. dctv.library/DCTVCvtLine                             dctv.library/DCTVCvtLine
  406.  
  407. NAME
  408.     DCTVCvtLine -- Old name for CvtDCTVLine().
  409.  
  410. SYNOPSIS
  411.     void DCTVCvtLine (struct DCTVCvtHandle *Handle)
  412.                                    a0
  413.  
  414. FUNCTION
  415.     V1 name for CvtDCTVLine().  This is the same library vector with a new
  416.     name so it is completely run-time compatible with old software and V1
  417.     of dctv.library.
  418.  
  419.     There is a #define in clib/dctv_protos.h to translate the old name to
  420.     the new name.  Also dctv.lib contains glue functions and LVOs for both
  421.     names.
  422.  
  423.     Use CvtDCTVLine() from now on.
  424.  
  425. SEE ALSO
  426.     CvtDCTVLine()
  427. dctv.library/DCTVFormat                               dctv.library/DCTVFormat
  428.  
  429. NAME
  430.     DCTVFormat -- Old name for FormatDCTV().
  431.  
  432. SYNOPSIS
  433.     void DCTVFormat (struct DCTVCvtHandle *Handle)
  434.                                    a0
  435.  
  436. FUNCTION
  437.     V1 name for FormatDCTV().  This is the same library vector with a new
  438.     name so it is completely run-time compatible with old software and V1
  439.     of dctv.library.
  440.  
  441.     There is a #define in clib/dctv_protos.h to translate the old name to
  442.     the new name.  Also dctv.lib contains glue functions and LVOs for both
  443.     names.
  444.  
  445.     Use FormatDCTV() from now on.
  446.  
  447. SEE ALSO
  448.     FormatDCTV()
  449. dctv.library/FormatDCTV                               dctv.library/FormatDCTV
  450.  
  451. NAME
  452.     FormatDCTV -- Format BitMap for DCTV display.
  453.  
  454. SYNOPSIS
  455.     void FormatDCTV (struct DCTVCvtHandle *Handle)
  456.                                    a0
  457.  
  458. FUNCTION
  459.     Formats the Handle's BitMap for a black DCTV display.  This is useful
  460.     if you wish to display the conversion process while in progress.
  461.  
  462.     Only use with a full-screen BitMap in a DCTVCVTT_RGBtoDCTV conversion
  463.     environment.
  464.  
  465. INPUTS
  466.     Handle - DCTVCvtHandle returned by AllocDCTVCvtTagList().
  467.  
  468. RESULTS
  469.     Formatted BitMap.
  470.  
  471. SEE ALSO
  472.     AllocDCTVCvtTagList()
  473. dctv.library/FreeDCTVCvt                             dctv.library/FreeDCTVCvt
  474.  
  475. NAME
  476.     FreeDCTVCvt -- Free conversion environment.
  477.  
  478. SYNOPSIS
  479.     void FreeDCTVCvt (struct DCTVCvtHandle *Handle)
  480.                                    a0
  481.  
  482. FUNCTION
  483.     Frees a DCTVCvtHandle allocated by AllocDCTVCvtTagList().
  484.  
  485. INPUTS
  486.     Handle - DCTVCvtHandle returned by AllocDCTVCvtTagList().
  487.  
  488. RESULTS
  489.     None.
  490.  
  491. SEE ALSO
  492.     AllocDCTVCvtTagList()
  493. dctv.library/InitDCTVCvt                             dctv.library/InitDCTVCvt
  494.  
  495. NAME
  496.     InitDCTVCvt -- Init conversion environment for frame.
  497.  
  498. SYNOPSIS
  499.     void InitDCTVCvt (struct DCTVCvtHandle *Handle)
  500.                                    a0
  501.  
  502. FUNCTION
  503.     Initializes line numbers for a new frame (image).  This is done
  504.     automatically by AllocDCTVCvtTagList().  Use it if you need to process
  505.     multiple frames using the same DCTVCvtHandle.
  506.  
  507.     This function does not initialize the RGB line buffer data or BitMap
  508.     data in any way.
  509.  
  510.     Also, there is no provision to change image dimensions, BitMap, or any
  511.     other parameter of a conversion environment.
  512.  
  513. INPUTS
  514.     Handle - DCTVCvtHandle returned by AllocDCTVCvtTagList().
  515.  
  516. RESULTS
  517.     DCTVCvtHandle fields are initialized as follows:
  518.         Handle->SrcLineNum = 0
  519.         Handle->DstLineNum = -Handle->NDelayLines
  520.  
  521. SEE ALSO
  522.     AllocDCTVCvtTagList(), FormatDCTV()
  523. dctv.library/ReadDCTVPixel                         dctv.library/ReadDCTVPixel
  524.  
  525. NAME
  526.     ReadDCTVPixel -- Get 24-bit RGB value of a pixel from a DCTV display
  527.                      BitMap. (V3)
  528.  
  529. SYNOPSIS
  530.     ULONG ReadDCTVPixel (struct DCTVCvtHandle *Handle, LONG x, LONG y)
  531.                                       a0                 d0      d1
  532.  
  533. FUNCTION
  534.     Returns 24-bit RGB value for the specified pixel in a
  535.     DCTVCVTT_DCTVtoRGB environment in the following format 32-bit format:
  536.  
  537.         xxxxxxxx rrrrrrrr gggggggg bbbbbbbb
  538.  
  539.     where the most significant byte value is undefined.
  540.  
  541.     Returns 0 for pixels outside of ImageBounds.
  542.  
  543. INPUTS
  544.     Handle - DCTVCvtHandle returned by AllocDCTVCvtTagList().  The RGB
  545.         line buffers are not used by this function and may be NULL
  546.         if DCTVCVTF_CustomRGBBuf was specified.
  547.     x, y - Pixel to examine using the coordinate system of the BitMap.
  548.  
  549. RESULTS
  550.     24-bit right-justifed RGB value or 0.
  551.  
  552. NOTE
  553.     For the sake of speed, this function does less horizontal filtering
  554.     than CvtDCTVLine() and therefore yields slightly different results.
  555.     The most visible difference is that sharp vertical edges in the DCTV
  556.     image get a bit "zippered" when converted to RGB using
  557.     ReadDCTVPixel().  CvtDCTVLine() typically makes smoother RGB images.
  558.  
  559. SEE ALSO
  560.     AllocDCTVCvtTagList(), CvtDCTVLine(), libraries/dctv.h
  561. dctv.library/SetDCTVColorTable                 dctv.library/SetDCTVColorTable
  562.  
  563. NAME
  564.     SetDCTVColorTable -- Set mid-BitMap palette change for DCTV->RGB
  565.                          conversion. (V3)
  566.  
  567. SYNOPSIS
  568.     void SetDCTVColorTable (struct DCTVCvtHandle *Handle,
  569.                                          a0
  570.  
  571.                             UWORD *ColorTable)
  572.                                      a1
  573.  
  574. FUNCTION
  575.     Replaces the Handle's ColorTable for DCTVCVTT_DCTVtoRGB conversions.
  576.     This can be used to supply a mid-screen palette change for the source
  577.     DCTV display BitMap.  This function is of limited usefulness, but is
  578.     essential for a couple of things:
  579.         . converting the DCTVPaint control panel to 24-bit RGB.
  580.         . handling PCHG chunks in a DCTV display ILBM.
  581.  
  582. INPUTS
  583.     Handle - DCTVCvtHandle returned by AllocDCTVCvtTagList().
  584.  
  585.     ColorTable - RGB4 UWORD array containing NColors (1<<BitMap->Depth)
  586.         entries.  This array must remain valid until it is replaced with
  587.         another call to SetDCTVColorTable() or the conversion environment
  588.         is freed.
  589.  
  590. RESULTS
  591.     Updates Handle->ColorTable.
  592.  
  593. NOTE
  594.     This function is ignored for DCTVCVTT_RGBtoDCTV.
  595.  
  596. SEE ALSO
  597.     AllocDCTVCvtTagList(), libraries/dctv.h
  598. dctv.library/TestDCTVSignature                 dctv.library/TestDCTVSignature
  599.  
  600. NAME
  601.     TestDCTVSignature -- Check a BitMap for DCTV signature.
  602.  
  603. SYNOPSIS
  604.     BOOL TestDCTVSignature (struct BitMap *BitMap)
  605.                                      a0
  606.  
  607. FUNCTION
  608.     Checks the top line of the supplied BitMap for the DCTV signature.
  609.     This signature must appear at the top of all DCTV pictures.  This
  610.     function provides a way of determining if a picture, possibly loaded
  611.     from an ILBM, is a DCTV display picture.
  612.  
  613. INPUTS
  614.     BitMap - BitMap to check.  Planes[] data does not need to be in
  615.         chip memory for this function.
  616.  
  617. RESULTS
  618.     TRUE (non-zero) if the top line of the BitMap contains a DCTV
  619.     signature.  FALSE otherwise.
  620.  
  621. SEE ALSO
  622.